#pragma once

#include <MyFC/Button.h>
#include <MyFC/Glyph.h>

namespace My {

class CheckBox : public Button, public Widget {
public:
	enum State {
		Unchecked,
		Checked,
		Indeterminate
	};
protected:
	SysColorGlyph	m_Checked;
	SysColorGlyph	m_Unchecked;
	GrayedGlyph		m_Indeterminate;
public:
	CheckBox(LPCTSTR szChecked = "MYFC_CHECKBOX", LPCTSTR szCheckedMask = "MYFC_CHECKBOX_MASK",
		LPCTSTR szUnchecked = "", LPCTSTR szUncheckedMask = "");
public:
	virtual CSize GetPreferredSize() const;
public:
	virtual State GetState() const = 0;
public:
	virtual void HandlePaint(CDC * pDC, const CRect & r);
};


} // My
